import "babel-polyfill"
import { registerApplication, start } from 'single-spa'
import { appRegister } from './src/config/appServies'
const allAppEntry = document.getElementById('allAppEntry')

console.log('-------环境变量------')
console.log(process.env)

// 对象方式
const baseProps = {
    name: "应用工程"
}
// 函数方式
// const customProps = (name, location) => {
//     return {}
// }

/**
 * 应用注册(registerApplication)（接受三个参数）
 *  应用的名称
 *  要加载的函数（要加载的入口点）
 *  用来激活的函数（用于告知是否加载应用的逻辑）
*/
Object.entries(appRegister).forEach(arr => {
    // *添加dom节点，用于挂载具体的应用
    let divDom = document.createElement("div")
    divDom.setAttribute('id', arr[1].id)
    allAppEntry.appendChild(divDom)

    // *注册应用
    registerApplication(
        arr[1].id, // 应用名称
        () => import(`./src/pages/${arr[1].id}/main.app.js`), // 资源加载路径
        () => {
            return location.hash.includes(arr[1].hijackUrl)
        }, // 加载时机|路由配置
        {
            appId: arr[1].id,
            appHijackUrl: arr[1].hijackUrl,
            ...baseProps
        } // 附属参数(该配置内容加传递给应用周期函数)
    )
})

start(); // 启动